//
//  NSDate+BZCompare.h
//  BZFoundation
//
//  Created by 郭艺伟 on 2017/9/30.
//  Copyright © 2017年 郭艺伟. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSDate (BZCompare)
/**
 *    比较两个日期是否是同一日期（忽视时间）
 *
 *    @param aDate 需要对比的日期
 *
 *    @return 返回YES如果日期一样，否则返回NO
 */
- (BOOL)bz_isEqualToDateIgnoringTime:(NSDate *)aDate;

/**
 *    当前时间是否是当天日期
 *
 *    @return 返回YES如果当前日期为今日，否则返回NO
 */
- (BOOL)bz_isToday;

/**
 *    当前时间是否为明天日期
 *
 *    @return 返回YES如果当前日期为明日，否则返回NO
 */
- (BOOL)bz_isTomorrow;

/**
 *    当前时间是否为昨天日期
 *
 *    @return 返回YES如果当前日期为昨日，否则返回NO
 */
- (BOOL)bz_isYesterday;

/**
 *    比较指定时间与当前实例时间是否为同一周
 *
 *    @param aDate 需要对比的时间
 *
 *    @return 返回YES如果当前实例时间与对比时间为同一周，否则返回NO
 */
- (BOOL)bz_isSameWeekAsDate:(NSDate *)aDate;

/**
 *    当前实例时间是否为本周日期
 *
 *    @return 返回YES如果当前实例日期为本周时间
 */
- (BOOL)bz_isThisWeek;

/**
 *    当前实例时间是否为下周日期
 *
 *    @return 返回YES如果当前实例时间为下周时间
 */
- (BOOL)bz_isNextWeek;

/**
 *    当前实例时间是否为上周日期
 *
 *    @return 返回YES如果当前实例时间为上周日期
 */
- (BOOL)bz_isLastWeek;

/**
 *    比较指定时间与当前实例时间是否为同一月份
 *
 *    @param aDate 需要对比的时间
 *
 *    @return 返回YES如果当前实例时间与对比时间为同一月份，否则返回NO
 */
- (BOOL)bz_isSameMonthAsDate:(NSDate *)aDate;

/**
 *    当前实例时间是否为本月份
 *
 *    @return 返回YES如果当前实例时间为本月份时间
 */
- (BOOL)bz_isThisMonth;

/**
 *    当前实例时间是否为下月份日期
 *
 *    @return 返回YES如果当前实例时间为下月份时间
 */
- (BOOL)bz_isNextMonth;

/**
 *    当前实例时间是否为上月份日期
 *
 *    @return 返回YES如果当前实例时间为上月份日期
 */
- (BOOL)bz_isLastMonth;

/**
 *    比较指定时间与当前实例时间是否为同一年份
 *
 *    @param aDate 需要对比的时间
 *
 *    @return 返回YES如果当前实例时间与对比时间为同一年份，否则返回NO
 */
- (BOOL)bz_isSameYearAsDate:(NSDate *)aDate;

/**
 *    当前实例时间是否为本年份
 *
 *    @return 返回YES如果当前实例时间为本年份时间
 */
- (BOOL)bz_isThisYear;

/**
 *    当前实例时间是否为明年日期
 *
 *    @return 返回YES如果当前实例时间为明年时间
 */
- (BOOL)bz_isNextYear;

/**
 *    当前实例时间是否为去年日期
 *
 *    @return 返回YES如果当前实例时间为去年日期
 */
- (BOOL)bz_isLastYear;

/**
 *    比较当前实例日期是否早于指定日期
 *
 *    @param aDate 需要对比的日期
 *
 *    @return 返回YES如果实例时间早于指定日期，否则返回NO
 */
- (BOOL)bz_isEarlierThanDate:(NSDate *)aDate;

/**
 *    比较当前实例日期是否晚于指定日期
 *
 *    @param aDate 需要对比的日期
 *
 *    @return 返回YES如果当前实例日期晚于指定日期，否则返回NO
 */
- (BOOL)bz_isLaterThanDate:(NSDate *)aDate;

@end
